<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Number</title>
</head>
<body>
    <input type="text" name="num" value="99">
</body>
<script src="https://cdn.bootcss.com/decimal.js/10.2.0/decimal.min.js"></script>
</html>
<script>
    //使用对象的方式声明
    // let hd = new Number(3);
    // console.log(hd+1)

    // let num = 99;
    // console.log(typeof num)


    //基本函数
    //判断是否为整数
    // console.log(Number.isInteger(1));
    //指定返回的小数可以进行四舍五入操作
    // console.log((16.565).toFixed(2));

    //NAN表示无效的数值
    // console.log(Number('houdunren'));
    // console.log(2/'houdnren');

    //NAN不能使用==进行比较,使用下面的代码来判断结果是否正确
    // var res = 2/'houdunn';
    // if(Number.isNaN(res)){
    //     console.log('Error')
    // }


    //使用Object.is   方法判断两个值是否完全相同
    // var res = 2 / 'houudnren';
    // console.log(Object.is(res,NaN))

    //类型转化,使用Number函数基本上可以转化所有得类型
    // console.log(Number('houdurnen'));
    // console.log(Number(true));
    // console.log(Number(false));
    // console.log(Number('9'));
    // console.log(Number([]))
    // console.log(Number([1]))
    // console.log(Number([5,2]))
    // console.log(Number({}))


    // //转化一个数值为整数
    // console.log(parseInt('   99hoduurnenci'));
    // console.log(parseInt('18.55'));

    // //使用parseFloat将字符串转化为浮点数
    // console.log(parseFloat('  95hoduudn'))
    // console.log(parseFloat('18.55'))



    //表单获取到的数值都是字符串类型，想要进行计算的话 需要进行转化类型
    // let num = document.querySelector("[name='num']").value;
    // console.log(typeof num)
    // console.log(num + 5 )//995

    // console.log(num*1+5)
    // console.log(Number(num) + 5)
    // console.log(parseFloat(num) + 5)
    // console.log(parseInt(num) + 5)

    //舍入操作
    //使用toFixed对值进行舍入操作
    // console.log(1.566.toFixed(2))
    
    //浮点精度
    // let hd = 0.1 + 0.2;
    // console.log(hd)
    // console.log(0.1.toString(2))
    // console.log(0.2.toString(2))

    //因为数值有误差   所有这边使用toFixed函数进行处理
    // console.log((0.1+0.2).toFixed(2))

    // console.log(1.0-0.9)
    // console.log((1.0-0.9).toFixed(2))

    // Number.prototype.add = function(num){
    //     //取两个数值中小数位最大的
    //     let n1 = this.toString().split('.')[1].length;
    //     let n2 = num.toString().split('.')[1].length;

    //     //得到10的N次幂
    //     let m = Math.pow(10,Math.max(n1,n2));
    //     return (this*m + num * m) / m;
    // }
    // console.log(0.1.add(0.2))


    //使用decimal.js来进行浮点数计算
    console.log(Decimal.add(0.1,0.1).valueOf())
</script>